#include <stdlib.h>//malloc的库函数
#include <stdio.h>

#define InitSize 10 //默认的最大长度
typedef struct{
    int *data;      //指示动态分配数组的指针
    int MaxSize;    //顺序表的最大容量
    int length;     //顺序表的当前长度
}SeqList;

void InitList(SeqList *L){
    //用malloc 申请一片连续的内存空间
    L->data = (int *)malloc(InitSize*sizeof(int));
    L->length = 0;
    L->MaxSize = InitSize;
}
//增加动态数组的长度
void IncreaseSize(SeqList *L, int len){
    int *p = L->data;
    L->data = (int *)malloc((L->MaxSize + len)*sizeof(int));
    for(int i = 0; i<L->length; i++){
        L->data[i] = p[i];
    }
    L->MaxSize = L->MaxSize + len;
    free(p);
}

int main(){
    SeqList L;                      //声明一个顺序表
    InitList(&L);                //初始化顺序表
    printf("Init MaxSize = %d\n",L.MaxSize);
    IncreaseSize(&L, 5);    //
    printf("After IncreaseSize L->MaxSize = %d\n",L.MaxSize);
    return 0;
}